package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * Java IO输入与输出
 * Java 按照输入与输出方向划分两个操作：读与写
 * 输入是用来读取的，是从外界输入到程序中的方向
 * 输出是用来写出的
 *
 * Java将输入与输出比喻为“流（stream）”，即：向同一侧顺序移动的过程
 * 并且定义了两个超类
 * Java.io.InoutStream:输入流
 * 里面规定所有字节输入流的读取方法。将来实现读取不同设备的输入流都继承自他，因此
 * 都会有这里定义的读取操作，使得程序员可以用相同的读取方式读取不同设备
 *
 * java.io.OutputStream:输出流。所有字节输出流都继承自他里面定义了写出字节的方法
 *
 * 文件流：
 * java.io.FileInputStream和FileOutStream
 * 它们继承自InputStream和OutputStresm.用来连接文件,进行读写文件数据的流
 */
public class FOSDemo {
    public static void main(String[] args) throws IOException {
        /*
            文件输出流提供了两种构造方法:
            需要注释，如果指定的文件不存在会自动将其创建出来，前提是该文件所在的目录
            必须存在!
         */
        //向当前目录下的fos.dat文件写入数据
//        File file = new File("./fos.dat");
//        FileOutputStream fos = new FileOutputStream(file);

        FileOutputStream fos=new FileOutputStream("./fos.dat");
         /*
            void write(int d)
            写入一个字节，将给定的int值对应的2进制的"低八位"写入文件
                                       vvvvvvvv
            00000000 00000000 00000000 00000001

            文件fos.dat的内容:
            00000001
         */
        fos.write(1);
        /*
            00000000 00000000 00000000 00000010
            文件fos.dat的内容:
            00000001 00000010
         */
        fos.write(2);

        System.out.println("写出完毕!");
        fos.close();

    }
}
